/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.nys.conci.citas.bean;

import com.nys.conci.base.BeanBase;
import com.nys.conci.base.excepcion.ExcepcionManager;
import com.nys.conci.base.utilitario.EtiquetasUtil;
import com.nys.conci.base.utilitario.FechaUtil;
import com.nys.conci.base.utilitario.MensajeUtil;
import com.nys.conci.citas.entidad.ControlCita;
import com.nys.conci.citas.entidad.EstadoCita;
import com.nys.conci.citas.modelo.ModeloCitas;
import com.nys.conci.citas.servicio.ServicioControlCitas;
import com.nys.conci.cliente.entidad.Pago;
import com.nys.conci.cliente.entidad.Persona;
import com.nys.conci.cliente.entidad.PlanCliente;
import com.nys.conci.cliente.entidad.PlanPago;
import com.nys.conci.cliente.modelo.ModeloPlanPago;
import com.nys.conci.usuario.entidad.Especialidad;
import com.nys.conci.usuario.servicio.ServicioAdministracion;
import com.nys.conci.usuario.servicio.ServicioControlUsuario;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.inject.Inject;

/**
 *
 * @author Yeudy10
 */
@ManagedBean
@ViewScoped
public class BeanAdministrarCitas extends BeanBase {

//<<<<<<<<<<<<<<<<<<<<<<<<<<<<*******************<<<<<<<<<<<<<<<<<<<<<<<<<<<<
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<     VARIABLES     >>>>>>>>>>>>>>>>>>>>>>>>>>>>
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<*******************<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    @Inject
    private ServicioControlUsuario scu;
    @Inject
    private ServicioControlCitas scc;
    @Inject
    private ServicioAdministracion sa;
    private List<ModeloCitas> listado_modelo_citas;
    private List<Persona> listado_persona_usuario;
    private List<Persona> listado_persona_cliente;
    private List<EstadoCita> listado_estado;
    private List<Especialidad> listado_especialidad;
    private List<ModeloPlanPago> listado_planes;
    private Persona persona_usuario_tabla;
    private Persona persona_usuario_select;
    private Persona persona_cliente_tabla;
    private Persona persona_cliente_select;
    private ModeloCitas modelo_citas_tabla;
    private ModeloCitas modelo_citas_select;
    private ControlCita cita;
    private String identificacion_c;
    private String identificacion_u;
    private String dsc_cliente;
    private String dsc_usuario;
    private String estado_pago;
    private Integer id_estado;
    private Integer id_plan;
    private Integer id_especialidad;
    private Date fecha;
    private Date hora;
    private Date fecha_minima;
    private boolean modificar;
    private boolean habilitar;
    private boolean ocultar;
    private boolean des_esp;

//<<<<<<<<<<<<<<<<<<<<<<<<<<<<*******************<<<<<<<<<<<<<<<<<<<<<<<<<<<<
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<  INICIALIZARORES  >>>>>>>>>>>>>>>>>>>>>>>>>>>>
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<*******************<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    /**
     * Constructor
     */
    public BeanAdministrarCitas() {
        this.inicializar();
    }

    /**
     * Inicializa las variables del bean, al acceder al constructor
     */
    private void inicializar() {
        try {
            ocultar = false;
            habilitar = false;
            des_esp = true;
            fecha_minima = FechaUtil.obtenerFechaActualDB();
        } catch (Exception ex) {
            ExcepcionManager.manejarExcepcion(ex);
        }
    }

    /**
     * Inicializas las variables y atributos del bean, despues del llamado del
     * constructor. Es utilizado para las inicializaciones que utilicen datos de
     * objetos injectados.
     */
    @Override
    @PostConstruct
    public void inicializarPost() {
        cargarClientes();
        cargarEspecialidades();
        cargarEstados();
        cargarUsuarios();
    }

//<<<<<<<<<<<<<<<<<<<<<<<<<<<<*******************<<<<<<<<<<<<<<<<<<<<<<<<<<<<
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<      MÉTODOS      >>>>>>>>>>>>>>>>>>>>>>>>>>>>
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<*******************<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    public void cargarEspecialidades() {
        try {
            listado_especialidad = new ArrayList<Especialidad>();
            listado_especialidad = sa.consultarListaEspecialidades();
        } catch (Exception ex) {
            ExcepcionManager.manejarExcepcion(ex);
        }
    }

    public void cargarUsuarios() {
        try {
            listado_persona_usuario = new ArrayList<Persona>();
            listado_persona_usuario = scu.consultarPersonas("U");
        } catch (Exception ex) {
            ExcepcionManager.manejarExcepcion(ex);
        }
    }

    public void cargarClientes() {
        try {
            listado_persona_cliente = new ArrayList<Persona>();
            listado_persona_cliente = scu.consultarPersonas("C");
        } catch (Exception ex) {
            ExcepcionManager.manejarExcepcion(ex);
        }
    }

    public void cargarEstados() {
        try {
            listado_estado = new ArrayList<EstadoCita>();
            listado_estado = sa.consultarListaEstadoCita();
        } catch (Exception ex) {
            ExcepcionManager.manejarExcepcion(ex);
        }
    }

    public void cargarPlanes() {
        try {
            listado_planes = new ArrayList<ModeloPlanPago>();
            List<PlanCliente> lista_pc = new ArrayList<PlanCliente>();
            lista_pc = sa.consultarListaPlanesPagoCliente(identificacion_c);
            for (PlanCliente planCliente : lista_pc) {
                ModeloPlanPago modelo = new ModeloPlanPago();
                modelo.setId_plan_cliente(planCliente.getId_plan_cliente());
                modelo.setNombre_plan(sa.consultarPlanPago(planCliente.getId_plan_pago()).getNombre());
                listado_planes.add(modelo);
            }
        } catch (Exception ex) {
            ExcepcionManager.manejarExcepcion(ex);
        }
    }

    public void cargarCitas() {
        try {
            listado_modelo_citas = new ArrayList<ModeloCitas>();
            List<ControlCita> lista = new ArrayList<ControlCita>();
            lista = scc.consultarListaCitasIdActFut(identificacion_c);
            for (ControlCita controlCita : lista) {
                ModeloCitas modelo = new ModeloCitas();
                modelo.setDscEstado(sa.consultarEstadoCita(controlCita.getId_estado_cita()).getNombre());
                modelo.setDscEspecialidad(sa.consultarEspecialidad(controlCita.getId_especialidad()).getNombre());
                modelo.setId_especialidad(controlCita.getId_especialidad());
                modelo.setFechareal(controlCita.getFechareal());
                modelo.setHora(controlCita.getHora());
                modelo.setId_estado_cita(controlCita.getId_estado_cita());
                modelo.setId_plan_cliente(controlCita.getId_plan_cliente());
                modelo.setIdentificacion_c(controlCita.getIdentificacion_c());
                modelo.setIdentificacion_u(controlCita.getIdentificacion_u());
                modelo.setId_cita(controlCita.getId_cita());
                modelo.setEstado_pago(controlCita.getEstado_pago());
                modelo.setNotificada(controlCita.getNotificada());
                modelo.setDiagnostico(controlCita.getDiagnostico());
                Persona per_c = scu.consultarPersona(controlCita.getIdentificacion_c());
                if (per_c != null) {
                    modelo.setNombre_cliente(per_c.getNombre() + " " + per_c.getApellido1() + " " + per_c.getApellido2());
                }
                Persona per_u = scu.consultarPersona(controlCita.getIdentificacion_u());
                if (per_u != null) {
                    modelo.setNombre_usuario(per_u.getNombre() + " " + per_u.getApellido1() + " " + per_u.getApellido2());
                }

                listado_modelo_citas.add(modelo);
            }
        } catch (Exception ex) {
            ExcepcionManager.manejarExcepcion(ex);
        }
    }

    public void guardarCita() {
        try {
            if (validarCita()) {
                if (modificar) {
                    obtenerDatosCita();
                    scc.guardarCita(modelo_citas_select.toControlCitas(), modificar);
                } else {
                    cita = new ControlCita();
                    modelo_citas_select = new ModeloCitas();
                    cita = obtenerDatosCita().toControlCitas();
                    scc.guardarCita(cita, modificar);
                }
                if (!modelo_citas_select.getFechareal().before(FechaUtil.getFechaActualSinHora())) {
                    String mensaje = "Se asigno correctamente la cita a: " +dsc_cliente;
                    MensajeUtil.agregarMensajeInfo(mensaje);
                }

                cargarCitas();
                limpiarCita();

            }
        } catch (Exception ex) {
            ExcepcionManager.manejarExcepcion(ex);
        }
    }

    public boolean validarCita() {
        boolean resultado = true;
        try {
            if (identificacion_c == null || identificacion_c.trim().equals("")) {
                String mensaje = EtiquetasUtil.obtenerEtiqueta("campo.requerido.parametro", "Cliente");
                MensajeUtil.agregarMensajeErrorComponente("form_conci:id_cliente", mensaje);
                resultado = false;
            }
            if (identificacion_u == null || identificacion_u.trim().equals("")) {
                String mensaje = EtiquetasUtil.obtenerEtiqueta("campo.requerido.parametro", "Usuario");
                MensajeUtil.agregarMensajeErrorComponente("form_conci:id_usuario", mensaje);
                resultado = false;
            }

            if (id_especialidad == null || id_especialidad == 0) {
                String mensaje = EtiquetasUtil.obtenerEtiqueta("campo.requerido.parametro", "Especialidad");
                MensajeUtil.agregarMensajeErrorComponente("form_conci:id_especialidad", mensaje);
                resultado = false;
            }

            if (id_estado == null || id_estado == 0) {
                String mensaje = EtiquetasUtil.obtenerEtiqueta("campo.requerido.parametro", "Estado");
                MensajeUtil.agregarMensajeErrorComponente("form_conci:id_estado", mensaje);
                resultado = false;
            }

            if (fecha == null) {
                String mensaje = EtiquetasUtil.obtenerEtiqueta("campo.requerido.parametro", "Fecha");
                MensajeUtil.agregarMensajeErrorComponente("form_conci:id_fecha", mensaje);
                resultado = false;
            }

            if (hora == null) {
                String mensaje = EtiquetasUtil.obtenerEtiqueta("campo.requerido.parametro", "Hora");
                MensajeUtil.agregarMensajeErrorComponente("form_conci:id_hora_cita", mensaje);
                resultado = false;
            }

            if (identificacion_c != null && identificacion_u != null && !identificacion_c.isEmpty() && !identificacion_u.isEmpty() && identificacion_c.equals(identificacion_u)) {
                String mensaje = "La identificación del cliente no puede ser igual a la identificación del usuario";
                MensajeUtil.agregarMensajeError(mensaje);
                resultado = false;
            }

            if (fecha != null && !fecha.equals(FechaUtil.getFechaActualSinHora()) && fecha.before(FechaUtil.obtenerFechaActual())) {
                String mensaje = "La fecha no puede ser anterior a la actual";
                MensajeUtil.agregarMensajeError(mensaje);
                resultado = false;
            }

        } catch (Exception ex) {
            ExcepcionManager.manejarExcepcion(ex);
        }
        return resultado;
    }

    public void eliminarCita() {
        try {
            Pago pago = new Pago();
            pago = sa.consultarPagoCitaId(modelo_citas_select.getId_cita());
            if (pago != null) {
                String mensaje = "No se puede eliminar, la cita ya fue pagada";
                MensajeUtil.agregarMensajeError(mensaje);
                return;
            } 
            
            if (modelo_citas_select.getNotificada() != null && modelo_citas_select.getNotificada().equals("S")) {
                String mensaje = "No se puede eliminar, la cita ya fue notificada";
                MensajeUtil.agregarMensajeError(mensaje);
                return;
            }
            
            if (!modelo_citas_select.getFechareal().before(FechaUtil.getFechaActualSinHora())) {
                sa.eliminar(modelo_citas_select.toControlCitas());
                modelo_citas_select = new ModeloCitas();
                cita = new ControlCita();
                modificar = false;
                cargarCitas();
                limpiarCita();
                String mensaje = "La cita seleccionada fue eliminada";
                MensajeUtil.agregarMensajeInfo(mensaje);
            } else {
                String mensaje = "No se pueden eliminar citas anteriores a la fecha actual";
                MensajeUtil.agregarMensajeAdvertencia(mensaje);
            }
        } catch (Exception ex) {
            ExcepcionManager.manejarExcepcion(ex);
        }
    }

    public void limpiarCita() {
        try {
            modificar = false;
            habilitar = false;
            des_esp = true;
            ocultar = false;
            identificacion_c = "";
            identificacion_u = "";
            id_especialidad = 0;
            id_estado = 0;
            id_plan = 0;
            fecha = null;
            hora = null;
            dsc_cliente = null;
            dsc_usuario = null;
            modelo_citas_select = new ModeloCitas();
            modelo_citas_tabla = new ModeloCitas();
            persona_cliente_select = new Persona();
            persona_cliente_tabla = new Persona();
            persona_usuario_select = new Persona();
            persona_usuario_tabla = new Persona();
            listado_modelo_citas = new ArrayList<ModeloCitas>();
        } catch (Exception ex) {
            ExcepcionManager.manejarExcepcion(ex);
        }
    }

    public void seleccionarUsuario() {
        try {
            persona_usuario_select = persona_usuario_tabla;
            identificacion_u = persona_usuario_select.getIdentificacion();
            dsc_usuario = persona_usuario_select.getNombre() + " " + persona_usuario_select.getApellido1() + " " + persona_usuario_select.getApellido2();
            if (identificacion_c != null && !identificacion_c.trim().equals("") && identificacion_u != null && !identificacion_u.trim().equals("")) {
                habilitar = true;
                des_esp = false;
                cargarPlanes();
            } else {
                habilitar = false;
                des_esp = true;
            }
        } catch (Exception ex) {
            ExcepcionManager.manejarExcepcion(ex);
        }
    }

    public void seleccionarCliente() {
        try {
            persona_cliente_select = persona_cliente_tabla;
            identificacion_c = persona_cliente_select.getIdentificacion();
            dsc_cliente = persona_cliente_select.getNombre() + " " + persona_cliente_select.getApellido1() + " " + persona_cliente_select.getApellido2();
            if (identificacion_c != null && !identificacion_c.trim().equals("") && identificacion_u != null && !identificacion_u.trim().equals("")) {
                habilitar = true;
                des_esp=false;
                cargarPlanes();
            } else {
                habilitar = false;
                des_esp = true;
            }

            cargarCitas();
        } catch (Exception ex) {
            ExcepcionManager.manejarExcepcion(ex);
        }
    }

    public void asignarEspPlan() {
        try {
            if (id_plan != null && id_plan != 0) {
                PlanCliente pc = new PlanCliente();
                pc = sa.consultarPlanPagoCliente(id_plan);
                PlanPago pp = new PlanPago();
                pp = sa.consultarPlanPago(pc.getId_plan_pago());
                if (pp != null) {
                    id_especialidad = pp.getId_especialidad();
                    des_esp = true;
                } 
            } else {
                id_especialidad = 0;
                des_esp = false;
            }

        } catch (Exception ex) {
            ExcepcionManager.manejarExcepcion(ex);
        }
    }

    public void seleccionarCita() {
        try {
            modelo_citas_select = modelo_citas_tabla;
            modificar = true;
            asignarDatosCita();
            if (identificacion_c != null && !identificacion_c.trim().equals("") && identificacion_u != null && !identificacion_u.trim().equals("")) {
                habilitar = true;
                des_esp = false;
                cargarPlanes();
                if (id_plan != null && id_plan != 0) {
                    des_esp = true;
                }
            }
        } catch (Exception ex) {
            ExcepcionManager.manejarExcepcion(ex);
        }
    }

    public void asignarDatosCita() {
        try {
            identificacion_c = modelo_citas_select.getIdentificacion_c();
            identificacion_u = modelo_citas_select.getIdentificacion_u();
            id_especialidad = modelo_citas_select.getId_especialidad();
            id_estado = modelo_citas_select.getId_estado_cita();
            id_plan = modelo_citas_select.getId_plan_cliente();
            fecha = modelo_citas_select.getFechareal();
            hora = modelo_citas_select.getHora();
            dsc_cliente = modelo_citas_select.getNombre_cliente();
            dsc_usuario = modelo_citas_select.getNombre_usuario();
            setEstado_pago(modelo_citas_select.getEstado_pago());
            if (!modelo_citas_select.getFechareal().before(FechaUtil.getFechaActualSinHora())) {
                habilitar = true;
                des_esp = false;
                ocultar = false;
            } else {
                ocultar = true;
                habilitar = false;
                des_esp = true;
            }
        } catch (Exception ex) {
            ExcepcionManager.manejarExcepcion(ex);
        }
    }

    public ModeloCitas obtenerDatosCita() {
        try {

            modelo_citas_select.setDscEstado(sa.consultarEstadoCita(id_estado).getNombre());
            modelo_citas_select.setDscEspecialidad(sa.consultarEspecialidad(id_especialidad).getNombre());
            modelo_citas_select.setFechareal(fecha);
            modelo_citas_select.setHora(hora);
            modelo_citas_select.setId_especialidad(id_especialidad);
            modelo_citas_select.setId_estado_cita(id_estado);
            modelo_citas_select.setId_plan_cliente(id_plan);
            modelo_citas_select.setIdentificacion_c(identificacion_c);
            modelo_citas_select.setIdentificacion_u(identificacion_u);
            modelo_citas_select.setEstado_pago(getEstado_pago());
            Persona p_u = scu.consultarPersona(identificacion_u);
            if (p_u != null) {
                modelo_citas_select.setNombre_usuario(p_u.getNombre() + " " + p_u.getApellido1() + " " + p_u.getApellido2());
            }
            Persona p_c = scu.consultarPersona(identificacion_c);
            if (p_c != null) {
                modelo_citas_select.setNombre_cliente(p_c.getNombre() + " " + p_c.getApellido1() + " " + p_c.getApellido2());
            }
        } catch (Exception ex) {
            ExcepcionManager.manejarExcepcion(ex);
        }
        return modelo_citas_select;
    }

//<<<<<<<<<<<<<<<<<<<<<<<<<<<<*******************<<<<<<<<<<<<<<<<<<<<<<<<<<<<
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<      GET & SET      >>>>>>>>>>>>>>>>>>>>>>>>>>
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<*******************<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    /**
     * @return the listado_modelo_citas
     */
    public List<ModeloCitas> getListado_modelo_citas() {
        return listado_modelo_citas;
    }

    /**
     * @param listado_modelo_citas the listado_modelo_citas to set
     */
    public void setListado_modelo_citas(List<ModeloCitas> listado_modelo_citas) {
        this.listado_modelo_citas = listado_modelo_citas;
    }

    /**
     * @return the listado_persona_usuario
     */
    public List<Persona> getListado_persona_usuario() {
        return listado_persona_usuario;
    }

    /**
     * @param listado_persona_usuario the listado_persona_usuario to set
     */
    public void setListado_persona_usuario(List<Persona> listado_persona_usuario) {
        this.listado_persona_usuario = listado_persona_usuario;
    }

    /**
     * @return the listado_persona_cliente
     */
    public List<Persona> getListado_persona_cliente() {
        return listado_persona_cliente;
    }

    /**
     * @param listado_persona_cliente the listado_persona_cliente to set
     */
    public void setListado_persona_cliente(List<Persona> listado_persona_cliente) {
        this.listado_persona_cliente = listado_persona_cliente;
    }

    /**
     * @return the listado_estado
     */
    public List<EstadoCita> getListado_estado() {
        return listado_estado;
    }

    /**
     * @param listado_estado the listado_estado to set
     */
    public void setListado_estado(List<EstadoCita> listado_estado) {
        this.listado_estado = listado_estado;
    }

    /**
     * @return the listado_especialidad
     */
    public List<Especialidad> getListado_especialidad() {
        return listado_especialidad;
    }

    /**
     * @param listado_especialidad the listado_especialidad to set
     */
    public void setListado_especialidad(List<Especialidad> listado_especialidad) {
        this.listado_especialidad = listado_especialidad;
    }

    /**
     * @return the listado_planes
     */
    public List<ModeloPlanPago> getListado_planes() {
        return listado_planes;
    }

    /**
     * @param listado_planes the listado_planes to set
     */
    public void setListado_planes(List<ModeloPlanPago> listado_planes) {
        this.listado_planes = listado_planes;
    }

    /**
     * @return the modelo_citas_tabla
     */
    public ModeloCitas getModelo_citas_tabla() {
        return modelo_citas_tabla;
    }

    /**
     * @param modelo_citas_tabla the modelo_citas_tabla to set
     */
    public void setModelo_citas_tabla(ModeloCitas modelo_citas_tabla) {
        this.modelo_citas_tabla = modelo_citas_tabla;
    }

    /**
     * @return the modelo_citas_select
     */
    public ModeloCitas getModelo_citas_select() {
        return modelo_citas_select;
    }

    /**
     * @param modelo_citas_select the modelo_citas_select to set
     */
    public void setModelo_citas_select(ModeloCitas modelo_citas_select) {
        this.modelo_citas_select = modelo_citas_select;
    }

    /**
     * @return the cita
     */
    public ControlCita getCita() {
        return cita;
    }

    /**
     * @param cita the cita to set
     */
    public void setCita(ControlCita cita) {
        this.cita = cita;
    }

    /**
     * @return the identificacion_c
     */
    public String getIdentificacion_c() {
        return identificacion_c;
    }

    /**
     * @param identificacion_c the identificacion_c to set
     */
    public void setIdentificacion_c(String identificacion_c) {
        this.identificacion_c = identificacion_c;
    }

    /**
     * @return the identificacion_u
     */
    public String getIdentificacion_u() {
        return identificacion_u;
    }

    /**
     * @param identificacion_u the identificacion_u to set
     */
    public void setIdentificacion_u(String identificacion_u) {
        this.identificacion_u = identificacion_u;
    }

    /**
     * @return the dsc_cliente
     */
    public String getDsc_cliente() {
        return dsc_cliente;
    }

    /**
     * @param dsc_cliente the dsc_cliente to set
     */
    public void setDsc_cliente(String dsc_cliente) {
        this.dsc_cliente = dsc_cliente;
    }

    /**
     * @return the dsc_usuario
     */
    public String getDsc_usuario() {
        return dsc_usuario;
    }

    /**
     * @param dsc_usuario the dsc_usuario to set
     */
    public void setDsc_usuario(String dsc_usuario) {
        this.dsc_usuario = dsc_usuario;
    }

    /**
     * @return the id_estado
     */
    public Integer getId_estado() {
        return id_estado;
    }

    /**
     * @param id_estado the id_estado to set
     */
    public void setId_estado(Integer id_estado) {
        this.id_estado = id_estado;
    }

    /**
     * @return the id_plan
     */
    public Integer getId_plan() {
        return id_plan;
    }

    /**
     * @param id_plan the id_plan to set
     */
    public void setId_plan(Integer id_plan) {
        this.id_plan = id_plan;
    }

    /**
     * @return the id_especialidad
     */
    public Integer getId_especialidad() {
        return id_especialidad;
    }

    /**
     * @param id_especialidad the id_especialidad to set
     */
    public void setId_especialidad(Integer id_especialidad) {
        this.id_especialidad = id_especialidad;
    }

    /**
     * @return the fecha
     */
    public Date getFecha() {
        return fecha;
    }

    /**
     * @param fecha the fecha to set
     */
    public void setFecha(Date fecha) {
        this.fecha = fecha;
    }

    /**
     * @return the hora
     */
    public Date getHora() {
        return hora;
    }

    /**
     * @param hora the hora to set
     */
    public void setHora(Date hora) {
        this.hora = hora;
    }

    /**
     * @return the modificar
     */
    public boolean isModificar() {
        return modificar;
    }

    /**
     * @param modificar the modificar to set
     */
    public void setModificar(boolean modificar) {
        this.modificar = modificar;
    }

    /**
     * @return the habilitar
     */
    public boolean isHabilitar() {
        return habilitar;
    }

    /**
     * @param habilitar the habilitar to set
     */
    public void setHabilitar(boolean habilitar) {
        this.habilitar = habilitar;
    }

    /**
     * @return the persona_usuario_tabla
     */
    public Persona getPersona_usuario_tabla() {
        return persona_usuario_tabla;
    }

    /**
     * @param persona_usuario_tabla the persona_usuario_tabla to set
     */
    public void setPersona_usuario_tabla(Persona persona_usuario_tabla) {
        this.persona_usuario_tabla = persona_usuario_tabla;
    }

    /**
     * @return the persona_usuario_select
     */
    public Persona getPersona_usuario_select() {
        return persona_usuario_select;
    }

    /**
     * @param persona_usuario_select the persona_usuario_select to set
     */
    public void setPersona_usuario_select(Persona persona_usuario_select) {
        this.persona_usuario_select = persona_usuario_select;
    }

    /**
     * @return the persona_cliente_tabla
     */
    public Persona getPersona_cliente_tabla() {
        return persona_cliente_tabla;
    }

    /**
     * @param persona_cliente_tabla the persona_cliente_tabla to set
     */
    public void setPersona_cliente_tabla(Persona persona_cliente_tabla) {
        this.persona_cliente_tabla = persona_cliente_tabla;
    }

    /**
     * @return the persona_cliente_select
     */
    public Persona getPersona_cliente_select() {
        return persona_cliente_select;
    }

    /**
     * @param persona_cliente_select the persona_cliente_select to set
     */
    public void setPersona_cliente_select(Persona persona_cliente_select) {
        this.persona_cliente_select = persona_cliente_select;
    }

    /**
     * @return the ocultar
     */
    public boolean isOcultar() {
        return ocultar;
    }

    /**
     * @param ocultar the ocultar to set
     */
    public void setOcultar(boolean ocultar) {
        this.ocultar = ocultar;
    }

    /**
     * @return the estado_pago
     */
    public String getEstado_pago() {
        return estado_pago;
    }

    /**
     * @param estado_pago the estado_pago to set
     */
    public void setEstado_pago(String estado_pago) {
        this.estado_pago = estado_pago;
    }

    /**
     * @return the fecha_minima
     */
    public Date getFecha_minima() {
        return fecha_minima;
    }

    /**
     * @param fecha_minima the fecha_minima to set
     */
    public void setFecha_minima(Date fecha_minima) {
        this.fecha_minima = fecha_minima;
    }

    /**
     * @return the des_esp
     */
    public boolean isDes_esp() {
        return des_esp;
    }

    /**
     * @param des_esp the des_esp to set
     */
    public void setDes_esp(boolean des_esp) {
        this.des_esp = des_esp;
    }
}
